meshgrid Subroutine

public subroutine meshgrid(x_vector, y_vector, X, Y)

Make N-dimensional meshgrid from two vectors x_vector and y_vector

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), DIMENSION(:) :: x_vector
real(kind=dp), intent(in), DIMENSION(:) :: y_vector
real(kind=dp), intent(out), DIMENSION(SIZE(y_vector), SIZE(x_vector)) :: X
real(kind=dp), intent(out), DIMENSION(SIZE(y_vector), SIZE(x_vector)) :: Y

Source Code

    SUBROUTINE meshgrid(x_vector, y_vector, X, Y)
        REAL(dp), DIMENSION(:), INTENT(IN)   :: x_vector, y_vector
        REAL(dp), DIMENSION(SIZE(y_vector), SIZE(x_vector)), INTENT(OUT)  :: X, Y
        INTEGER :: sX, sY, i

        sX = size(x_vector)
        sY = size(y_vector)

        DO i = 1, sY
            X(i, :) = x_vector
        END DO

        DO i = 1, sX
            Y(:, i) = y_vector
        END DO

    END SUBROUTINE meshgrid